package Learn;

import ClassTest.Student;
import org.w3c.dom.ls.LSOutput;

public class ObjectDemo1 {
    //Object 只有空参构造没有有参构造
    //所以子类构造方法（无参或有参都有）的第一行默认有一个super();

    //成员方法
    //现在3种 其余之后学

    public static void main(String[] args) {
        //1.toString 返回对象的字符串表示形式

//        Object obj=new Object();
//        String str=obj.toString();
//        System.out.println(str);//java.lang.Object@776ec8df
        //                           包名     类名      地址值

//        Student stu=new Student();
//        String s2=stu.toString();
//        System.out.println(s2);//ClassTest.Student@3b07d329

        //System 一个类
        //out 输出流 相当于一个静态变量
        //println(); 方法参数表示打印的内容
        //打印一个对象时 会调用 toString 方法把对象变成字符串
        //再打印到控制台 再换行

        //默认情况下打印一个对象 打印的就是地址值
        //想看到对象内部的属性值 直接重写toString方法

        Student stu=new Student();
        String s2=stu.toString();
        System.out.println(s2);//null


        //2.equals
//        Student s1=new Student("张");
//        Student s2=new Student("张");
//        boolean result=s1.equals(s2);
//        System.out.println(result);
        //默认object 比较的是地址值
        //String等里面都重写了所以可以比较内容

        StringBuilder sb=new StringBuilder("abc");
        String s=new String("abc");

        System.out.println(s.equals(sb));//false
        //因为调用者是s所以用的是String里的方法 而sb不是一个字符串 所以返回一个false

        System.out.println(sb.equals(s));
        //StringBuilder 里面没有equals的方法 因为只是一个容器 所以equals的方法应该来源于object 比较地址值



    }

}
